热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

式子|极值_机器学习算法笔记4.支持向量机(SVM)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了机器学习算法笔记4.支持向量机(SVM)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了机器学习算法笔记4. 支持向量机(SVM)相关的知识,希望对你有一定的参考价值。



【机器学习算法笔记】4. 支持向量机(SVM)

给定训练样本,支持向量机建立一个超平面作为决策曲面,使得正例和反例之间的隔离边缘最大化


4.1 线性模型

考虑到用于分离超平面的决策曲面:

x到超平面的距离:

现在我们考虑到要寻找一个超平面,使得全体x到超平面的距离都大于1:(这里d=1或-1)

(这里可以看出,d取1或-1和d取2或-2是一样,在是用于分割超平面的两半)
并且满足权值向量最小化代价函数:

建立拉格朗日函数(这里也可以看出d的值不会影响函数):

得到:

可以变为:

计算出


4.2 不可分模式的最优超平面

上面情况是一个不具有分类误差的分离超平面,我更希望找到一个最优平面,使香分类平均误差最小,这样的分类边缘称为软的。
我们将分类距离定义为:

最小化代价函数可简化为:

这里的参数C用于控制不可分离点数之间的平衡,当C比较大的时,暗示训练样本质量较高,而当C较小时,说明其存在噪声
所以不可分离情况与可分离情况,主要是在:

支持向量的个数反映了隐藏空间特征的个数。


4.3 SVM的数学解释

SVM有两个方向去看待这个问题,第一个是从拉格朗日方向(也就是前面),第二个方向是直接从目标函数(损失项和正则项角度去看)
一般来说,监督学习可以看做最小化下面的目标函数:


逻辑回归中Logistic regression中损失函数称为log loss;
而SVM中的 称为hinge loss。
这个方向上考虑SVM,虽然在式子相似,但在理论上是不同的,前者这里的那项C,这是在软间隔中引入的,即在不能线性可分的情况下,允许离群点存在。此时你希望分错的距离越少越好,就增大C,相当于提升了加号后式子的权重,减弱了加号前式子的权重,从而学出来的模型分错的点的距离会小,当C无穷大时,相当于没有错分的,也就是硬间隔。而后者的项C是加在正则项上的。


4.4 核方法支持向量机

超平面被写成如下形式:

此时:


4.5 SMO算法求解

首先回到我们前面一直悬而未解的问题,对偶函数最后的优化问题,这个问题可以由SMO算法来快速解决,SMO算法是最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。

按照坐标上升的思路,我们首先固定除α1以外的所有参数,然后在α1上求极值。等一下,这个思路有问题,因为如果固定α1以外的所有参数,那么α1将不再是变量(可以由其他值推出),因为问题中规定了

因此,我们需要一次选取两个参数做优化,比如α1和α2,此时α2可以由α1和其他参数表示出来。这样回带到W中,W就只是关于α1的函数了,可解。
这样,SMO的主要步骤如下:

意思是,第一步选取一对αi和αj,选取方法使用启发式方法。
第二步,固定除αi和αj之外的其他参数,确定W极值条件下的αi,αj由αi表示。


4.6 RBF的SVM

径向基网络的支持向量机结构:

对于径向基网络的支持向量机来说,其径向基函数的数目和中心分别由支持向量的个数和值来决定,其特别是:
1、有意使特征(隐藏)空间的维数足够大,使得可以在整个空间建立超平面
2、通过聚类方法找到中心。


4.7 SVM的核函数

支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。
构造出一个具有良好性能的SVM,核函数的选择是关键.核函数的选择包括两部分工作:一是核函数类型的选择,二是确定核函数类型后相关参数的选择.因此如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重大难题,也成为科研工作者所关注的焦点,即便如此,却依然没有得到具体的理论或方法来指导核函数的选取.


1、经常使用的核函数

核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K ( x i , x j ) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型:
(1)线性核函数

(2)多项式核

(3)径向基核(RBF)

Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 σ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。
(4)小波核

(5)样条核

(6)Sigmoid核函数

采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。


2、核函数的选择

在选取核函数解决实际问题时,通常采用的方法有:一是利用专家的先验知识预先选定核函数;二是采用Cross-Validation交叉验证方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数。三是混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,主要是将不同的核函数结合起来后会产生更好的特性。

关于核函数的一些参考:
http://blog.csdn.net/wsj998689aa/article/details/47027365
http://blog.csdn.net/batuwuhanpei/article/details/52354822


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • PRML读书会第十四章 Combining Models(committees,Boosting,AdaBoost,决策树,条件混合模型)...
    主讲人网神(新浪微博:豆角茄子麻酱凉面)网神(66707180)18:57:18大家好,今天我们讲一下第14章combiningmodel ... [详细]
  • Stanford机器学习第九讲. 聚类
    原文:http:blog.csdn.netabcjenniferarticledetails7914952本栏目(Machinelearning)包括单参数的线性回归、多参数的线性 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
手机用户2502869023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有